858d2a3f757fea2b88ffcb907e0f221699e32420,modules/yarn/src/main/java/org/apache/ignite/yarn/ApplicationMaster.java,ApplicationMaster,onContainersAllocated,#List#,81
Before Change
nmClient.startContainer(container, ctx);
containers.put(container.getNodeId().getHost(),
new IgniteContainer(container.getNodeId().getHost(), container.getResource().getVirtualCores(),
container.getResource().getMemory()));
}
catch (Exception ex) {
System.err.println("[AM] Error launching container " + container.getId() + " " + ex);
After Change
/** {@inheritDoc} */
public synchronized void onContainersAllocated(List<Container> conts) {
for (Container c : conts) {
if (checkContainer(c)) {
try {
ContainerLaunchContext ctx = Records.newRecord(ContainerLaunchContext.class);
Map<String, String> env = new HashMap<>(System.getenv());
//env.put("IGNITE_TCP_DISCOVERY_ADDRESSES", getAddress(c.getNodeId().getHost()));
ctx.setEnvironment(env);
Map<String, LocalResource> resources = new HashMap<>();
resources.put("ignite", IgniteYarnUtils.setupFile(ignitePath, fs, LocalResourceType.ARCHIVE));
resources.put("ignite-config.xml", IgniteYarnUtils.setupFile(cfgPath, fs, LocalResourceType.FILE));
ctx.setLocalResources(resources);
ctx.setCommands(
Collections.singletonList(
"./ignite/*/bin/ignite.sh "
+ "./ignite-config.xml"
+ " -J-Xmx" + c.getResource().getMemory() + "m"
+ " -J-Xms" + c.getResource().getMemory() + "m"
+ IgniteYarnUtils.YARN_LOG_OUT
));
log.log(Level.INFO, "Launching container: {0}.", c.getId());
nmClient.startContainer(c, ctx);
containers.put(c.getId(),
new IgniteContainer(
c.getId(),
c.getNodeId(),
c.getResource().getVirtualCores(),
c.getResource().getMemory()));